Cortex-A53: Fix reporting of missing errata when not needed
authorAndrew F. Davis <[email protected]>
Wed, 24 Apr 2019 20:11:03 +0000 (16:11 -0400)
committerAndrew F. Davis <[email protected]>
Thu, 25 Apr 2019 13:26:17 +0000 (09:26 -0400)
Errata 819472, 824069, and 827319 are currently reported in a warning as
missing during boot for platforms that do not need them. Only warn when
the errata is needed for a given revision but not compiled in like other
errata workarounds.

Fixes: bd393704d2b1 ("Cortex-A53: Workarounds for 819472, 824069 and 827319")
Signed-off-by: Andrew F. Davis <[email protected]>
Change-Id: Ifd757b3d0e73a9bd465b98dc20648b6c13397d8d

lib/cpus/aarch64/cortex_a53.S

index f20082d2d6167b14b17e13a20c3c1986bbc76804..6fd3c53fdda91b718c23febed3ac1d69530f0c3c 100644 (file)
@@ -45,31 +45,35 @@ endfunc cortex_a53_disable_smp
        /* ---------------------------------------------------
         * Errata Workaround for Cortex A53 Errata #819472.
         * This applies only to revision <= r0p1 of Cortex A53.
+        * Due to the nature of the errata it is applied unconditionally
+        * when built in, report it as applicable in this case
         * ---------------------------------------------------
         */
 func check_errata_819472
-       /*
-        * Even though this is only needed for revision <= r0p1, it
-        * is always applied due to limitations of the current
-        * errata framework.
-        */
-       mov     x0, #ERRATA_APPLIES
+#if ERRATA_A53_819472
+       mov x0, #ERRATA_APPLIES
        ret
+#else
+       mov     x1, #0x01
+       b       cpu_rev_var_ls
+#endif
 endfunc check_errata_819472
 
        /* ---------------------------------------------------
         * Errata Workaround for Cortex A53 Errata #824069.
         * This applies only to revision <= r0p2 of Cortex A53.
+        * Due to the nature of the errata it is applied unconditionally
+        * when built in, report it as applicable in this case
         * ---------------------------------------------------
         */
 func check_errata_824069
-       /*
-        * Even though this is only needed for revision <= r0p2, it
-        * is always applied due to limitations of the current
-        * errata framework.
-        */
-       mov     x0, #ERRATA_APPLIES
+#if ERRATA_A53_824069
+       mov x0, #ERRATA_APPLIES
        ret
+#else
+       mov     x1, #0x02
+       b       cpu_rev_var_ls
+#endif
 endfunc check_errata_824069
 
        /* --------------------------------------------------
@@ -103,16 +107,18 @@ endfunc check_errata_826319
        /* ---------------------------------------------------
         * Errata Workaround for Cortex A53 Errata #827319.
         * This applies only to revision <= r0p2 of Cortex A53.
+        * Due to the nature of the errata it is applied unconditionally
+        * when built in, report it as applicable in this case
         * ---------------------------------------------------
         */
 func check_errata_827319
-       /*
-        * Even though this is only needed for revision <= r0p2, it
-        * is always applied due to limitations of the current
-        * errata framework.
-        */
-       mov     x0, #ERRATA_APPLIES
+#if ERRATA_A53_827319
+       mov x0, #ERRATA_APPLIES
        ret
+#else
+       mov     x1, #0x02
+       b       cpu_rev_var_ls
+#endif
 endfunc check_errata_827319
 
        /* ---------------------------------------------------------------------